home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
gnu
/
updates
/
update21.zoo
/
libg++
/
WHATS.NEW
< prev
Wrap
Text File
|
1992-06-03
|
4KB
|
103 lines
read below for changes in libg++-2.0.19 from cygnus: the most
significant atari specific user visible changes in libg++ are:
clean up the binary flag stuff. define everything in terms of
manifest constant _IOS_BIN. Also, in ios define binary and
text flags so that in the spirit of fstreams one can say
ofstream output_bin("filename", ios::out|ios::binary)
instead of
ofstream output_bin("filename", ios::out_bin);
similarly
ifstream input_text("filename", ios::in|ios::text);
instead of
ifstream input_text("filename", ios::in_text);
etc..
- in the open(name, int mode) was'nt setting bin
flag for atarist
- in the open(name, char *mode) allow "rb"/"wb" etc modes and set
flags appropriately for bin/text mode.
- also in both the cases above set initial flags appropriately from
__default_mode__ (which is set by the C function _binmode(binp)).
JUST in case it is'nt obvious: the atariST lib streams now fully
honor the _binmode() and __DEFAULT_BUFSIZ__ semantic semantics of
the atariST gcc C library, for all <iostreams> based streams and
derivatives thereof. In case you are not familiar
- calling _binmode(1): will cause all subsequent opens of any streams
to be opened in binary mode (streams are opened in text mode normally).
in any one individual call you can override the default. for example
fopen("foo", "r"); open for read in text mode
ifstream foo("foo", ios::read) open for read in text mode
_binmode(1);
fopen("foo", "r"); open for read in binary mode
fopen("foo", "rt"); open for read in text mode
ifstream foo("foo", ios::read) open for read in binary mode
ifstream foo("foo", ios::read|ios::text) open for read in text mode
ifstream foo("foo", ios::read|ios::binary) open for read in binary mode
ifstream foo("foo", "r") open for read in binary mode
ifstream foo("foo", "rt") open for read in text mode
_binmode(0);
ifstream foo("foo", "r") open for read in text mode
... and so on
- __DEFAULT_BUFSIZ__ unless overridden by the user defines the default
size of stream buffers, both in the C library and the G++ library.
It is initialized to BUFSIZ (see stdio.h) if it is not defined in
the user application.
*** Changes in libg++ version 2.1:
* "Class" include files in g++-include moved to src
Those include files that are just wrappers around C header files
(e.g. signal.h) remain in g++-include, while the header files
that are specific to libg++ (or C++) have been moved to src.
If your system includes "C++-ready" C header files (as in SVR4 or
Linux), you don't need to use the wrappers in g++-include.
* Portability
A lot of effort has gone into makeing libg++ more portable.
Code that depends on internals of "traditional" implementations
had been made more portable. The 'libiberty' library is incorporated
into libg++; this supplies (if needed) many functions that may be
missing on particular hosts.
* Auto-configuration
New scripts automaticly figure out various properties of the
system (and compiler) you use. While these scripts are not
foolproof, the intent is that on most systems you will no longer
have to edit Makefiles or build special configuration files.
* Iostream bug-fixes
There have been numerous bug-fixes and enhancements in the
iostream code. Lots of rough edges in the streambuf and filebuf
classes have been fixed.
There are still some rough edges of the protocol (as in what the
streambuf class should do, and what sub-classes such as filebuf
should handle).
* iostream enhancements for lexing/parsing.
You can now create a 'streammaker' object, which is a "remembered"
position is a streambuf. Later, you can backtrack to that position.
This is supposed to work, even if the streambuf is unbuffered and
otherwise unseekable, because the streambuffer never throws away
any data following an extant streammarker. This feature will be
used to build various scanning/parsing facilities (with backup).
(See iostream.texi for an example.)